package cn.tedu.api;
/**本类用于测试包装类*/
public class TestNumber {
    static Integer i0=10;//成员变量,需要设置静态
    public static void main(String[] args) {
        /**1.Integer包装类型的默认值是null*/
        System.out.println(i0);
        System.out.println(i0.intValue());
        
        Integer i1=new Integer(5);
        Integer i11=new Integer(5);
//        System.out.println(i1==i11);
        System.out.println(i1);
        System.out.println(i11);
        System.out.println(i1);
        System.out.println(i1.hashCode());
        System.out.println(i11.hashCode());
        System.out.println(i1.equals(i11));
        /**2.Integer.valueOf()这种创建方式有高效的效果
         * 如果数据在-128-127这个范围内，相同数据只会存一次
         * 后续再存都是使用之前存过的数据*/
       Integer i2= Integer.valueOf(121);
       Integer i3= Integer.valueOf(121);
       System.out.println(i1 == i3);//false
       System.out.println(i2 ==i3);//true，有高效效果
        
        Integer i4=Integer.valueOf(300);
        Integer i5=Integer.valueOf(300);
        System.out.println(i5 ==i4);//false.虽然创建方式有高效效果，但是数据超出了高效的范围
        
        Double d1=new Double(3.14);
        Double d2=Double.valueOf(3.14);
        Double d3=Double.valueOf(3.14);
        System.out.println(d1==d2);//false
        /**3.只有Integer的valueOf()才有高效效果，其他类型没有*/
        System.out.println(d2==d3);//false
        //使用Integer的对象i1，调用parseInt()，将String转为int
        System.out.println(i1.parseInt("800")+10);
        //使用double的对象i5，调用parseDouble()，将String转为double
        System.out.println(d1.parseDouble("3.14")+1);
        System.out.println(i5.parseInt("500"));
        
        
        
        
    }
}
